UCF STIG Viewer Logo

Windows systems must be configured to prevent application use of Test Root certificates.


Overview

Finding ID Version Rule ID IA Controls Severity
V-7061 APPNET0046 SV-7444r2_rule DCSL-1 Medium
Description
Microsoft Windows operating systems provide a feature called Authenticode. Authenticode technology and its underlying code signing mechanisms serve to provide a mechanism to identify software publishers and ensure that software applications have not been tampered with. Authenticode technology relies on digital certificates and is based on Public Key Cryptography Standards (PKCS) #7 (encrypted key specification), PKCS #10 (certificate request formats), X.509 (certificate specification), and Secure Hash Algorithm (SHA) and MD5 hash algorithms. A root certificate is a public key certificate or self signed certificate that identifies the Root Certificate Authority. Digital certificates are verified by using a chain of trust. The trust anchor for digital certificates is the Root Certificate Authority (CA). A CA may generate a Test Root Certificate that is used for testing purposes. Configuring production Windows systems to allow applications to use Test Root Certificates in order to ascertain trust can create an integrity risk.
STIG Date
Microsoft Dot Net Framework 4.0 STIG 2014-01-08

Details

Check Text ( C-3966r17_chk )
This check must be performed for each user on the system. In order to determine compliance, the hexadecimal values contained in each users "State" registry key must be converted to binary values.

Use regedit to locate "HKEY_USER\[UNIQUE USER SID VALUE]\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing\State".

Document the hexadecimal value of the user's "State" registry key. Each character in the hex string will be referred to as a "nibble". For example, a hex value of 100a0 has 5 binary "nibbles". For guidance purposes, the nibble positions are numbered 1 through 5 starting from the right and moving to the left.

Open the Windows calculator.
Select "View", then "Programmer".
Select "Hex" and then "Dword".

Enter the 5 nibble hex value obtained from the users registry key.

Select "Bin".

The value will automatically convert to a binary value.

Start the count from 1 (not 0) and count the bit values starting from the right and moving to the left. The total number of bits will vary from 18 to 20 depending upon the hex values input into the calculator.

If bit positions 6 and 8 are not values of "0" on production systems, this is a finding.

If bit positions 6 and 8 are not values of "0" on a development system and the IAO has not provided documented approval, this is a finding.
Fix Text (F-12602r10_fix)
Using regedit, change the hexadecimal value of the "HKEY_USER\[UNIQUE USER SID VALUE]\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing\State" registry key.

For production systems, change the hexadecimal value in nibble position 2 to "0".

For development systems, change the hexadecimal value in nibble position 2 to "0" or the IAO must approve the
settings.

Example fix:
Hex value: 100a0
Nibble position: 54321

To apply fix, example hex value "a" in nibble position 2 would be changed to hex value "0" resulting in a hex value of 10000.